import { getToken } from '@/utils/auth';
import { ElNotification } from 'element-plus';
import { useNoticeStore } from '@/store/modules/notice';

// 初始化
export const initSSE = (url) => {
	if (import.meta.env.VITE_APP_SSE === 'false') {
		return;
	}

	url = url + '?Authorization=Bearer ' + getToken() + '&clientid=' + import.meta.env.VITE_APP_CLIENT_ID;
	const { data, error } = useEventSource(url, [], {
		autoReconnect: {
			retries: 10,
			delay: 3000,
			onFailed () {
				console.log('Failed to connect after 10 retries');
			}
		}
	});

	watch(error, () => {
		console.log('SSE connection error:', error.value);
		error.value = null;
	});

	watch(data, () => {
		if (!data.value) return;
		useNoticeStore().addNotice({
			message: data.value,
			read: false,
			time: new Date().toLocaleString()
		});
		ElNotification({
			title: '消息',
			message: data.value,
			type: 'success',
			duration: 3000
		});
		data.value = null;
	});
};
